#!/usr/bin/python
# -*- coding: UTF8 -*-
# archivo : atun.py
#
###############################################################################
#
#
# Eco-Py - Juego educativo, ayudando a preservar el medioambiente
# Copyright (c) 2010 Javier Castrillo // riverplatense at gmail dot com
# Este programa es software libre; usted puede redistruirlo y/o modificarlo bajo
# los términos de la Licencia Pública General GNU, tal y como está publicada
# por la Free Software Foundation; ya sea la versión 2 de la Licencia, o (a su
# elección) cualquier versión posterior.
#
# Este programa se distribuye con la intención de ser útil, pero SIN NINGUNA
# GARANTÍA; incluso sin la garantía implícita de USABILIDAD O UTILIDAD PARA UN
# FIN PARTICULAR. Vea la Licencia Pública General GNU para más detalles.
#
# Usted debería haber recibido una copia de la Licencia Pública General GNU
# junto a este programa; si no es así, escriba a la Free Software Foundation,
# Inc. 675 Mass Ave, Cambridge, MA 02139, EEUU.
#
#
##############################################################################


# Módulos

import pygame, sys
from pygame.locals import *
from sys import exit
import random

# Constantes

ANCHO = 800
ALTO = 550
personaje = 'images/anzuelo.png'
pinguino = 'images/pp_13.png'

# Clases


class Barco(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = cargar_imagen("images/barco.png", True)
        self.rect = self.image.get_rect()
        self.rect.centerx = 650
        self.rect.centery = 148
        self.speed = [0.5, -0.5]
        

class Cania(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = cargar_imagen("images/cania.png", True)
        self.rect = self.image.get_rect()
        self.rect.centerx = 575
        self.rect.centery = 125
        self.speed = [0.5, -0.5]
    

class Anzuelo(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(personaje)
        self.rect = self.image.get_rect()
    
    def colision (self, pescadito):
        if pygame.sprite.collide_rect(self, pescadito):
            print "j"


class Fish_one(pygame.sprite.Sprite):
    def __init__(self,x, y):
        x=x
        y=y
        pygame.sprite.Sprite.__init__(self)
        self.image = cargar_imagen("images/pez1.png", True) 
        self.rect = self.image.get_rect()
        self.rect.centerx = x
        self.rect.centery = y
        self.speed = [0.4, -0.4, 0.3, -0.3, 0.2, -0.2, 0.1 , -0.1]
    
    def ia(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[1] * time
        if self.rect.left <= 0:                
            self.rect.centerx = 800

    def ia_1(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[3] * time
        if self.rect.left <= 0:
            self.rect.centerx = 800
    
    def ia_2(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[5] * time
        if self.rect.left <= 0:
            self.rect.centerx = 800

    def ia_3(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[7] * time
        if self.rect.left <= 0:
            self.rect.centerx = 800
            
    def colision(self, anzuelo, puntos):
        """Creo la colisión. Lo hago desaparecer de pantalla y le doy puntaje"""
        if pygame.sprite.collide_rect(self, anzuelo):
            
            puntos[0] += 0
            self.rect.centerx = 1000
            
        print 'choque'

    
class Fish_two(pygame.sprite.Sprite):
    def __init__(self,x, y):
        x=x
        y=y
        pygame.sprite.Sprite.__init__(self)
        self.image = cargar_imagen("images/pez.png", True) 
        self.rect = self.image.get_rect()
        self.rect.centerx = x
        self.rect.centery = y
        self.speed = [0.4, 0.3, 0.2, 0.1]

    def ia_4(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        n = random.randint(0,1)
        print n
        self.rect.centerx += n * time
        
        if self.rect.left >= ANCHO:
            self.rect.centerx = 0        
        
    def colision2(self, anzuelo, puntos):
        """Creo la colisión. Lo hago desaparecer de pantalla y le doy puntaje"""
        if pygame.sprite.collide_rect(self, anzuelo):
            puntos[0] += 0
        print 'choque1'
        return


class Fish_three(pygame.sprite.Sprite):
    def __init__(self,x, y):
        pygame.sprite.Sprite.__init__(self)
        self.image = cargar_imagen("images/pescado1.png", True) 
        self.rect = self.image.get_rect()
        self.rect.centerx = x
        self.rect.centery = y
        self.speed = [0.4, -0.4, 0.3, -0.3, 0.2, -0.2, 0.1 , -0.1]
    
    def ia_atun(self, time):
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[1] * time
        if self.rect.left <= 0:
            self.rect.centerx = 800

    def ia_atun1(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[3] * time
        if self.rect.left <= 0:
            self.rect.centerx = 800
        
    def ia_atun2(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[5] * time
        if self.rect.left <= 0:
            self.rect.centerx = 800

    def ia_atun3(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[7] * time
        if self.rect.left <= 0:
            self.rect.centerx = 800
            
    def colision3(self, anzuelo, puntos):
        """Creo la colisión. Lo hago desaparecer de pantalla y le doy puntaje"""
        if pygame.sprite.collide_rect(self, anzuelo):
            puntos[0] += 0
        print 'choque3'

    
class Fish_four(pygame.sprite.Sprite):
    def __init__(self,x, y):
        x=x
        y=y
        pygame.sprite.Sprite.__init__(self)
        self.image = cargar_imagen("images/pescado.png", True) 
        self.rect = self.image.get_rect()
        self.rect.centerx = x
        self.rect.centery = y
        self.speed = [0.4, -0.4, 0.3, -0.3, 0.2, -0.2, 0.1 , -0.1]
    
    def ia_atun4(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[0] * time
        if self.rect.left >= ANCHO:
            self.rect.centerx = 0

    def ia_atun5(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[2] * time
        if self.rect.left >= ANCHO:
            self.rect.centerx = 0
    
    def ia_atun6(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[4] * time
        if self.rect.left >= ANCHO:
            self.rect.centerx = 0

    def ia_atun7(self, time):  
        """Creo la inteligencia artificial que mueve al pez"""
        self.rect.centerx += self.speed[6] * time
        if self.rect.left >= ANCHO:
            self.rect.centerx = 0
      
      
    def colision4(self, anzuelo, puntos):
        """Creo la colisión. Lo hago desaparecer de pantalla y le doy puntaje"""
        if pygame.sprite.collide_rect(self, anzuelo):
            puntos[0] += 0
        print 'choque4'

        return

        pescado = 0
        pez = 1
        while pescado < 3 or pez < 3:
    
            y = random.randint
            pes= Fish(0, y)
            if collision.Cania:
                pescado = 0
               

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Funciones

def cargar_imagen(nombre, transparent=False):
    try:
        image = pygame.image.load(nombre)
    except pygame.error, message:
        raise SystemExit, message
    image = image.convert()
    if transparent:
        color = image.get_at((0,0))
        image.set_colorkey(color, RLEACCEL)
    return image
    
def texto(texto, posx, posy, color=(255, 0, 0)):
    """ La utilizo para cargar la fuente del texto, tamaño. color y variable para posición"""
    fuente = pygame.font.Font('fonts/karnivor.ttf', 25)
    salida = pygame.font.Font.render(fuente, texto, 1, color)
    salida_rect = salida.get_rect()
    salida_rect.centerx = posx
    salida_rect.centery = posy
    return salida, salida_rect

        
def main():
    screen = pygame.display.set_mode((ANCHO, ALTO))
    pygame.display.set_caption("Pruebas Pygame")
    fondo = cargar_imagen('images/mar.jpg')
    barco = Barco()
    clock = pygame.time.Clock()    
    cania = Cania()
    atun = Fish_three(800, 470)#
    atun1 = Fish_three(800, 292)
    atun2 = Fish_three(800, 430)
    atun3 = Fish_three(800, 510)
    atun4 = Fish_four (0, 480)
    atun5 = Fish_four (0, 530)
    atun6 = Fish_four (0, 380)
    atun7 = Fish_four (0, 265)
    pes = Fish_one(800, 450)
    pes1 = Fish_one(800, 400)
    pes2 = Fish_one(800, 300)
    pes3 = Fish_one(800, 250)
    pes4 = Fish_two(0, 270)
    pes5 = Fish_two(0, 350)
    pes6 = Fish_two(0, 500)
    pes7 = Fish_two(0, 450)
    
    pescadito = Fish_one (0, True)
    pescadito2 = Fish_two (0, True)
    pescadito3 = Fish_three (0, True)
    pescadito4 = Fish_four (0, True)
    
    anzuelo = Anzuelo()
    todos_sprites = pygame.sprite.RenderClear((anzuelo, pes, pes1, pes2, pes3, pes4, pes5, pes6, pes7))
    peces = pygame.sprite.Group(pes, pes1, pes2, pes3, pes4, pes5, pes6, pes7)
    
                
    screendos = pygame.display.set_mode((800, 550), 0, 16)
    puntos = [0] 
    mouse_cursor = pygame.image.load(personaje)#
    
    
    while True:
        time = clock.tick(60)
        for eventos in pygame.event.get():
            if eventos.type == QUIT:
                sys.exit(0)
        
        p, p_rect = texto(str(puntos[0]), ANCHO/4, 40)
        
        screen.blit(fondo, (0, 0))
        screen.blit(p, p_rect)#Muestro el puntaje
        mouse_pos = pygame.mouse.get_pos()
    
        x, y = pygame.mouse.get_pos()#
        x-= mouse_cursor.get_width() / 2#
        y-= mouse_cursor.get_height() / 2#
        screen.blit(mouse_cursor, (x, y))#
        
        pygame.draw.line(screendos, (0, 0, 0), (558, 86), mouse_pos)
        pescadito.colision(anzuelo, puntos)
        #pescadito2.colision2(anzuelo, puntos)
        #pescadito3.colision3(anzuelo, puntos)
        #pescadito4.colision4(anzuelo, puntos)
        screen.blit(barco.image, barco.rect)
        screen.blit(cania.image, cania.rect)
        screen.blit(atun.image, atun.rect)
        screen.blit(atun1.image, atun1.rect)
        screen.blit(atun2.image, atun2.rect)
        screen.blit(atun3.image, atun3.rect)
        screen.blit(atun4.image, atun4.rect)
        screen.blit(atun5.image, atun5.rect)
        screen.blit(atun6.image, atun6.rect)
        screen.blit(atun7.image, atun7.rect)
        screen.blit(pes.image, pes.rect)
        screen.blit(pes1.image, pes1.rect)
        screen.blit(pes2.image, pes2.rect)
        screen.blit(pes3.image, pes3.rect)
        screen.blit(pes4.image, pes4.rect)
        screen.blit(pes5.image, pes5.rect)
        screen.blit(pes6.image, pes6.rect)
        screen.blit(pes7.image, pes7.rect)
        atun.ia_atun(time)
        atun1.ia_atun1(time)
        atun2.ia_atun2(time)
        atun3.ia_atun3(time)
        atun4.ia_atun4(time)
        atun5.ia_atun5(time)
        atun6.ia_atun6(time)
        atun7.ia_atun7(time)
        pes.ia(time)
        pes1.ia_1(time)
        pes2.ia_2(time)
        pes3.ia_3(time)
        pes4.ia_4(time)
        pes5.ia_4(time)
        pes6.ia_4(time)
        pes7.ia_4(time)
        # #Muestro el puntaje
        #pes.colision(anzuelo, puntos)
        #pes1.colision(anzuelo, puntos)
        #pes2.colision(anzuelo, puntos)
        #pes3.colision(anzuelo, puntos)
        anzuelo.colision(pescadito)
        pygame.display.flip() 
        pygame.display.update()

    
    return 0

if __name__ == '__main__':
    pygame.init()
    main()
 
